// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'

Vue.config.productionTip = false
//elementui
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);

//图片查看器
import Viewer from 'v-viewer'
import 'viewerjs/dist/viewer.css'
Vue.use(Viewer, {
  defaultOptions: {
    zIndex: 9999,
  },
});
Viewer.setDefaults({
  Options: { // Options必须，否则会出现默认打开等等不可预知的错误
    'inline': false,
    'button': true, // 显示右上角关闭按钮
    'navbar': false, // 缩略图导航
    'title': false, // 是否显示当前图片的标题
    'toolbar': true, // 显示工具栏
    'tooltip': true, // 显示缩放百分比
    'movable': true, // 图片是否可移动
    'zoomable': true, // 是否可缩放
    'rotatable': true, // 是否可旋转
    'scalable': true, // 是否可翻转
    'transition': true, // 是否使用 CSS3 过度
    'fullscreen': true, // 播放时是否全屏
    'keyboard': true, // 是否支持键盘
    'url': 'data-source' // 设置大图片的 url
  }
})

//引用入axios请求拦截
import './request'

//引用vuex
import store from './store'

// 屏幕尺寸监听函数
function updateScreenWidth() {
  store.dispatch('updateScreenWidth'); // 非模块化调用
}

// 首次加载时执行一次
updateScreenWidth()

// 监听窗口变化
window.addEventListener('resize', updateScreenWidth)
//图片地址
// Vue.prototype.$imgUrl = 'http://192.168.1.6:9000/'//上传
// Vue.prototype.$imgUrl = 'http://39.105.217.58:9000'//上传
// 正式环境
Vue.prototype.$loginUrl = 'https://www.bsedu.com/login'
Vue.prototype.$linkUrl = 'https://www.bsedu.com'//资源中心
Vue.prototype.$linkUrlwb = 'https://wb.bsedu.com'//白板
Vue.prototype.$linkUrlra = 'https://ra.bsedu.com'//分析
Vue.prototype.$linkUrlzj = 'https://zj.bsedu.com/'//组卷
Vue.prototype.$linkUrltk = 'https://tk.bsedu.com/' //题库
Vue.prototype.$linkUrlzy = 'https://zy.bsedu.com/' //资源
Vue.prototype.$linkUrlxb = 'https://xb.bsedu.com' //资源
Vue.prototype.$linkUrlwork = 'https://omr.bsedu.com' //作业

if (process.env.NODE_ENV != "production") {
  // 测试环境
  if (process.env.NODE_ENV == "development") {
    Vue.prototype.$loginUrl = '/login'
  } else {
    Vue.prototype.$loginUrl = 'https://test-usercenter.bsedu.com/login'
  }
  Vue.prototype.$linkUrl = 'https://test-usercenter.bsedu.com'//资源中心
  Vue.prototype.$linkUrlwb = 'https://test-wb.bsedu.com'//白板
  Vue.prototype.$linkUrlra = 'https://test-ra.bsedu.com'//分析
  Vue.prototype.$linkUrlzj = 'https://test-zj.bsedu.com/'//组卷
  Vue.prototype.$linkUrltk = 'https://test-tk.bsedu.com/' //题库
  Vue.prototype.$linkUrlzy = 'https://test-zy.bsedu.com/' //资源
  Vue.prototype.$linkUrlxb = 'https://test-xb.bsedu.com/' //资源
  Vue.prototype.$linkUrlwork = 'https://test-omr.bsedu.com' //作业
}

Vue.filter('formatDate', function (value) {
  if (!value) return '';
  return value.split('T')[0];
});

Vue.filter('toFixed', function (value) {
  if (!value) return '';
  return Number(value).toFixed(2); // 转换为数字并保留两位小数
});

//下载excel
import JsonExcel from 'vue-json-excel'
Vue.component('downloadExcel', JsonExcel)

//验证码滑块
import SliderVerificationCode from 'slider-verification-code';
import 'slider-verification-code/lib/slider-verification-code.css';
Vue.use(SliderVerificationCode);

//图片压缩
// import VueImageCompressor from 'vue-image-compressor';
// Vue.use(VueImageCompressor);

import preventReClick from './utils/preventReClick.js';
Vue.directive('preventReClick', preventReClick);


import sticky from 'vue-sticky-directive';
Vue.use(sticky);

// import DraggableBox from '@/components/draggableBox.vue'
// Vue.component('DraggableBox', DraggableBox)

//兼容ie
import 'babel-polyfill'
if (
  '-ms-scroll-limit' in document.documentElement.style &&
  '-ms-ime-align' in document.documentElement.style
) { // detect it's IE11
  window.addEventListener("hashchange", function (event) {
    var currentPath = window.location.hash.slice(1);
    if (store.state.route.path !== currentPath) {
      router.push(currentPath)
    }
  }, false)
}

import ClickOutside from '@/directives/clickOutside';
Vue.directive('click-outside', ClickOutside);

import '@/assets/fonticon/iconfont.css'


/* eslint-disable no-new */
new Vue({
  el: '#app',
  store,
  router,
  components: { App },
  template: '<App/>'
})
